There are several problems with optimal use of asynchronous messaging solutions (Java Message Service (JMS) providers, native IBM WebSphere MQ (WMQ), and similar) to access applications through the request-response pattern. (Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates; IBM and WebSphere are trademarks of International Business Machines Corporation, registered in many jurisdictions worldwide.)
In spite of these problems, the asynchronous messaging model embodied in APIs such as the MQI and JMS remains popular and it would be highly desirable to provide an implementation where this style of coding actually works. There are a variety of reasons for this, including: the asynchronous model (put/send a message, get/receive a message) is particularly simple and intuitive; in an application, or suite of applications, that already uses asynchronous messaging, it can be beneficial to use the same APIs, programming skills, and so on for request-response; and if an installation is already using a messaging provider such as Websphere MQ, then using the same provider for request-response allows uniform management (resource allocation, security management, and so on).